package cn.edu.zafu.bigdata.x.xiejunjie.exceptionhandeling;

public class ArrayIndexOutOfBoundsExceptionHandling {

    public static void main(String[] args) {
        // 定义一个数组
        int[] numbers = {1, 2, 3, 4, 5};

        // 测试数据
        int index = 5; // 正常情况下索引应该在0到4之间

        try {
            // 调用 getElement 方法
            int element = getElement(numbers, index);
            System.out.println("元素值为: " + element);
        } catch (ArrayIndexOutOfBoundsException e) {
            // 捕获异常并输出错误信息
            System.out.println("错误信息: " + e.getMessage());
        }
    }

    /**
     * 获取数组中指定索引的元素。
     * @param arr 数组
     * @param index 索引
     * @return 数组中指定索引的元素
     * @throws ArrayIndexOutOfBoundsException 如果索引超出数组范围，则抛出此异常
     */
    public static int getElement(int[] arr, int index) throws ArrayIndexOutOfBoundsException {
        if (index < 0 || index >= arr.length) {
            throw new ArrayIndexOutOfBoundsException("索引 " + index + " 超出了数组范围 [0, " + (arr.length - 1) + "]");
        }
        return arr[index];
    }
}
